using System.Diagnostics.CodeAnalysis;
using System.Linq.Expressions;
using ZeroBlog.Core.Domains.Blog;

namespace ZeroBlog.Core.DomainServices.FlashArticles;

public interface IFlashArticleDomainService
{
    Task AddAsync(FlashArticle domain);
    Task DeleteAsync(IList<long> ids);
    Task UpdateAsync(FlashArticle domain);
    Task<FlashArticle> GetAsync([NotNull] Expression<Func<FlashArticle, bool>> predicate);
    Task<(IList<FlashArticle>, int)> Query(string? keyword, int pageNumber, int pageSize);
}